<script charset="utf-8">



    /* 
    class 类名{

        constructor(参数){
            // 属性初始化
            this.属性名=值
            this.属性名=参数
            。。。。。。
        }

        方法名(){}
        方法名(){}


        static 属性名=值
        static 方法名(){}

    } */



    class Person {


        constructor( n,a,s,h,j) {
            this.name=n;
            this.age=a;
            this.sex=s;
            this.hobby=h;
            this.job=j;
        }
     
        say(){
            console.log(`我是${this.name},我今年${this.age}岁，我是${this.sex}生，我的爱好是：${this.hobby},我是一个${this.job}`);
        }


        // 静态的属性
        static type="人"
        static run(){
            console.log("我是一个不爱运动的人");
        }

    }



    let p=new Person("小明",10,"男",["吃","睡","玩"],"无业游民")
    console.log(p);
    console.log(p.name);
    p.say()


    let p1=new Person("小黑",11,"女",["学习","运动"],"学生")
    console.log(p1);
    console.log(p1.name); //成员属性
    p1.say() //成员方法



    // 对于公共的内容：例如：type="人"  这个属性是大家共有的，这样的数据没有必要每次实例化都创建一份，所有的实例共同使用一份就可以，我们把会公共的东西使用静态去声明


    // 成员的属性和方法由实例化的对象调用 **************
    // 静态的属性和方法由类调用（而不是由对象调用） ****************
    console.log(Person.type);
    Person.run()




    // Array.from()  静态方法
    // arr.push()    成员方法


</script>